package main

import (
	"gin-project/config"
	"gin-project/models"
	"gin-project/routes"
	"gin-project/utils"
	"log"
)

func main() {
	// 初始化Zap日志
	if err := utils.Init(); err != nil {
		panic("日志初始化失败: " + err.Error())
	}
	defer utils.Close() // 程序退出时关闭日志

	//加载配置
	config.LoadConfig()
	// 初始化数据库连接
	if err := config.InitDB(); err != nil {
		log.Fatalf("数据库初始化失败: %v", err)
	}
	defer config.CloseDB()
	// 自动迁移数据表
	if err := models.MigrateTables(); err != nil{
		log.Fatalf("数据库迁移失败: %v",err)
	}

	// 设置路由并启动服务器
	r := routes.SetupRouter()
	log.Printf("服务器启动在端口 %s", config.AppConfig.ServerPort)
	log.Fatal(r.Run(":" + config.AppConfig.ServerPort))

}